export interface ServerMetric {
  id: string;
  name: string;
  region: string;
  cpu: number;
  memory: number;
  disk: number;
  networkIn: number;
  networkOut: number;
  load1m: number;
  load5m: number;
  load15m: number;
  timestamp: number;
  health: 'healthy' | 'warning' | 'critical';
}

export interface Task {
  id: string;
  name: string;
  targetCluster: string;
  status: 'queued' | 'running' | 'failed' | 'completed';
  progress: number;
  startTime: number;
  endTime?: number;
  description: string;
}

export interface Alert {
  id: string;
  timestamp: number;
  source: string;
  severity: 'low' | 'medium' | 'high' | 'critical';
  message: string;
  resolved: boolean;
}

export interface SystemStatus {
  totalServers: number;
  healthyServers: number;
  warningServers: number;
  criticalServers: number;
  avgCpu: number;
  avgMemory: number;
  avgLoad: number;
  networkBalance: 'balanced' | 'skewed';
  networkRatio: number;
}

export interface DataStream {
  isRunning: boolean;
  servers: ServerMetric[];
  tasks: Task[];
  alerts: Alert[];
  systemStatus: SystemStatus;
  history: {
    timestamps: number[];
    cpu: number[];
    memory: number[];
    networkIn: number[];
    networkOut: number[];
  };
}